Computer-enabled graphical display and editing systems are used in a wide variety of different applications and industries to view and edit different types of visual images on computer systems or other electronic devices. One common application is electronic design automation, including such applications as layout design, in which the designs for components and spatial layout of electronic components such as integrated circuits and circuit boards are viewed, created and edited using displayed images in graphical software applications.
Custom layout design involves rapid manual activity of a designer, where productivity is the key. Improvements in designer productivity, especially involving the more repetitive activities, lead to substantial decrease in design turn-around-time and increase in user satisfaction.
When using existing layout editors, designers often “lose touch” with the layout, i.e. lose their place or context within the layout, during a variety of common tasks. For example, when a designer performs zooming operations in or out to change the displayed magnification level of a layout portion or other image, the designer may lose context and must rely on quick identification of familiar or known shapes to regain context. Such zoom operations are performed frequently during editing, which further causes a designer to lose track of particular locations and areas on a design canvas. Similarly, when a designer pans a view of the layout, the same loss of context may occur. Or, a designer may perform focused and concentrated edits in a smaller area of the layout for a long time, and may lose the connectivity context of the surrounding topology as a result. Furthermore, when a designer is inspecting and editing a new design or another person's design, getting a grasp of the connectivity takes a long time, thereby reducing productivity. Similarly, graphical interfaces and systems for other applications also commonly cause a user to lose context when editing and viewing different features in an image.
In one example of designer loss of context through editing, FIGS. 1-4 show a graphical interface for an application that is used to view and edit circuit layouts, the graphical interface including a displayed interface 10 and image 12 graphically depicting a portion of a layout design. In this example, the user has turned off other layers so that only one layer of components is displayed. From the initial view of the layout in FIG. 1, the user must perform some corrections in the lower right corner area which includes some dense routing and flattened standard cells. In one example, the modifications can be meant for shapes in netlists net-A and net-C (textual lists and configurations of components) based on a report in a log of Layout Versus Schematic (LVS) software, on an M1 metal layer, where the designer wishes to edit the graphical layout so that it matches the items in the netlists. To more easily perform the desired corrections, the user zooms in to the magnification display level shown in FIG. 2. At this magnification level, however, the designer may become disoriented due to the different view. This disorientation is usually even more common when working on a new design or other person's design.
To regain context, the designer can search for known landmarks or shapes, such as the U-turn shape 14 which may indicate the location of the layout. Some applications allow the designer to click or select one or more of the displayed layout shapes to display information about the selected shapes, or may allow the designer to query the connectivity, such as a text-based netlist showing the connections of the shapes in a design, to make sure the displayed location is the desired location in the layout and to avoid making errors.
FIG. 3 shows a view of the interface display after the user has performed another zoom operation relative to the display of FIG. 2. As is common, the zoom operation did not occur as precisely as the designer expected, and the displayed area is a small distance to the right, left, up, or down of the location intended to be worked on. Furthermore, the familiar landmarks such as the U-turn shape 14 of FIG. 2, which would allow the designer to regain the layout context, are no longer fully in view. Thus the user has to perform additional zooms, pans, and/or queries to move the displayed area to the desired location, shown in FIG. 4.
The loss of context in a displayed region is even more common for cell layout designs in which there are many repeating patterns, as in the examples of FIGS. 1-4. In such cases, the designer may recognize landmarks or other shapes, but cannot be sure he or she is viewing the desired location due to the repeating patterns and similar shapes present all throughout the layout. Thus, the designer needs to query the connectivity of shapes to ensure the desired location is displayed. This process would then repeat when the designer completed desired edits and needs to display a different location of the layout. The task of regaining context is even more difficult if the layout does not include manual labels of the components, as in the example of FIG. 1.
A layout designer may perform such zooming tasks and attempts to regain context as much as 200 times a day, or more during rigorous design phases. Much of the time is spent maintaining context and identifying connectivity in a layout. Furthermore, when working on a new or other person's layout, it can take a long time before the designer is familiar enough with the layout and its connectivity. All these factors lead to repetitive, tedious tasks for the user that decrease productivity substantially.
As described above, in existing layout systems, there are generally two ways that systems allow a designer to maintain context. One way is to provide a query system and rely on the designer's intent, where the designer can query a shape or other displayed feature when the designer desires to learn more about the context. The problem with this method is that the designer is required to perform an explicit activity to find out the current context on the layout, and in every instance of re-establishing context, the query activity must be performed many times on multiple displayed shapes, which is burdensome and time-consuming for the designer. Another way to maintain context is to allow the designer to manually add displayed labels on the layout which allow the designer to continue to view the labels and track context more effectively. Some designers add identifiers other than labels on shapes to provide reminders, such as marking an area with a ruler or other icon to indicate that further edits need to be made at that area. Such labeling is worthwhile to later allow designers to easily recognize details of the design. For example, a layout engineer should spend time adding labels to a layout so that a different designer does not face as much difficulty working with the layout in the future, similar to the practice of adding comments to software code. However, the labeling task can be very time consuming and burdensome as well, especially when adding labels to many shapes on a canvas to allow context to be maintained in most situations.